package io.vincentwinner.systeminfoapi.dao;

import io.vincentwinner.toolset.os.Memory;

import java.util.List;

/**
 * 内存条信息
 */
public interface IMemoryDao {

    /**
     * 内存条硬件信息
     * @return 内存条硬件信息
     */
    List<Memory.MemoryHardwareInfo> getMemoryHardwareInfos();

    default Integer getMemoryNum(){
        return getMemoryHardwareInfos().size();
    }

    /**
     * @return 物理内存总量
     */
    Long getPhysicalTotal();

    /**
     * @return 物理内存空限量
     */
    Long getPhysicalFree();

    /**
     * @return 物理内存使用量
     */
    Long getPhysicalUsed();

    /**
     * @return 物理内存使用率
     */
    Double getPhysicalUsage();

    /**
     * @return 交换分区总量
     */
    Long getSwapTotal();

    /**
     * @return 交换分区空闲
     */
    Long getSwapFree();

    /**
     * @return 交换分区使用量
     */
    Long getSwapUsed();

    /**
     * @return 交换分区使用率
     */
    Double getSwapUsage();

}
